{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 主要包\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import datetime\n",
    "import random\n",
    "\n",
    "# 绘图\n",
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.metrics import mean_squared_error\n",
    "from sklearn.preprocessing import OneHotEncoder\n",
    "from sklearn.pipeline import make_pipeline\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "\n",
    "from sklearn.decomposition import PCA\n",
    "import matplotlib as mpl\n",
    "\n",
    "mpl.rcParams['font.sans-serif']=['SimHei']\n",
    "mpl.rcParams['axes.unicode_minus'] = False\n",
    "\n",
    "pd.set_option('display.max_columns', None)\n",
    "\n",
    "# 忽略浸膏\n",
    "import warnings\n",
    "warnings.filterwarnings(action=\"ignore\")\n",
    "pd.options.display.max_seq_items = 8000\n",
    "pd.options.display.max_rows = 8000\n",
    "import os"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((2935849, 6), (60, 2), (22170, 3), (84, 2))"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 加载数据集\n",
    "st2 = pd.read_csv('input/sales_train_v2.csv')\n",
    "shops = pd.read_csv('input/shops.csv')\n",
    "items = pd.read_csv('input/items.csv')\n",
    "item_categories = pd.read_csv('input/item_categories.csv')\n",
    "\n",
    "st2.shape,shops.shape,items.shape,item_categories.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2013年1月至2015年10月的每日历史数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>date_block_num</th>\n",
       "      <th>shop_id</th>\n",
       "      <th>item_id</th>\n",
       "      <th>item_price</th>\n",
       "      <th>item_cnt_day</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>02.01.2013</td>\n",
       "      <td>0</td>\n",
       "      <td>59</td>\n",
       "      <td>22154</td>\n",
       "      <td>999.00</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>03.01.2013</td>\n",
       "      <td>0</td>\n",
       "      <td>25</td>\n",
       "      <td>2552</td>\n",
       "      <td>899.00</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>05.01.2013</td>\n",
       "      <td>0</td>\n",
       "      <td>25</td>\n",
       "      <td>2552</td>\n",
       "      <td>899.00</td>\n",
       "      <td>-1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>06.01.2013</td>\n",
       "      <td>0</td>\n",
       "      <td>25</td>\n",
       "      <td>2554</td>\n",
       "      <td>1709.05</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>15.01.2013</td>\n",
       "      <td>0</td>\n",
       "      <td>25</td>\n",
       "      <td>2555</td>\n",
       "      <td>1099.00</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         date  date_block_num  shop_id  item_id  item_price  item_cnt_day\n",
       "0  02.01.2013               0       59    22154      999.00           1.0\n",
       "1  03.01.2013               0       25     2552      899.00           1.0\n",
       "2  05.01.2013               0       25     2552      899.00          -1.0\n",
       "3  06.01.2013               0       25     2554     1709.05           1.0\n",
       "4  15.01.2013               0       25     2555     1099.00           1.0"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "st2.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 商店名字和对应ID"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>shop_name</th>\n",
       "      <th>shop_id</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>!Якутск Орджоникидзе, 56 фран</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>!Якутск ТЦ \"Центральный\" фран</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Адыгея ТЦ \"Мега\"</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Балашиха ТРК \"Октябрь-Киномир\"</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Волжский ТЦ \"Волга Молл\"</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                        shop_name  shop_id\n",
       "0   !Якутск Орджоникидзе, 56 фран        0\n",
       "1   !Якутск ТЦ \"Центральный\" фран        1\n",
       "2                Адыгея ТЦ \"Мега\"        2\n",
       "3  Балашиха ТРК \"Октябрь-Киномир\"        3\n",
       "4        Волжский ТЦ \"Волга Молл\"        4"
      ]
     },
     "execution_count": 95,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "shops.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 商品的名字和对应的种类"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>item_name</th>\n",
       "      <th>item_id</th>\n",
       "      <th>item_category_id</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>! ВО ВЛАСТИ НАВАЖДЕНИЯ (ПЛАСТ.)         D</td>\n",
       "      <td>0</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>!ABBYY FineReader 12 Professional Edition Full...</td>\n",
       "      <td>1</td>\n",
       "      <td>76</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>***В ЛУЧАХ СЛАВЫ   (UNV)                    D</td>\n",
       "      <td>2</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>***ГОЛУБАЯ ВОЛНА  (Univ)                      D</td>\n",
       "      <td>3</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>***КОРОБКА (СТЕКЛО)                       D</td>\n",
       "      <td>4</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>***НОВЫЕ АМЕРИКАНСКИЕ ГРАФФИТИ  (UNI)         ...</td>\n",
       "      <td>5</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>***УДАР ПО ВОРОТАМ (UNI)               D</td>\n",
       "      <td>6</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>***УДАР ПО ВОРОТАМ-2 (UNI)               D</td>\n",
       "      <td>7</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>***ЧАЙ С МУССОЛИНИ                     D</td>\n",
       "      <td>8</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>***ШУГАРЛЭНДСКИЙ ЭКСПРЕСС (UNI)             D</td>\n",
       "      <td>9</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>*ЗА ГРАНЬЮ СМЕРТИ                       D</td>\n",
       "      <td>10</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>*ЛИНИЯ СМЕРТИ                           D</td>\n",
       "      <td>11</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                            item_name  item_id  \\\n",
       "0           ! ВО ВЛАСТИ НАВАЖДЕНИЯ (ПЛАСТ.)         D        0   \n",
       "1   !ABBYY FineReader 12 Professional Edition Full...        1   \n",
       "2       ***В ЛУЧАХ СЛАВЫ   (UNV)                    D        2   \n",
       "3     ***ГОЛУБАЯ ВОЛНА  (Univ)                      D        3   \n",
       "4         ***КОРОБКА (СТЕКЛО)                       D        4   \n",
       "5   ***НОВЫЕ АМЕРИКАНСКИЕ ГРАФФИТИ  (UNI)         ...        5   \n",
       "6            ***УДАР ПО ВОРОТАМ (UNI)               D        6   \n",
       "7          ***УДАР ПО ВОРОТАМ-2 (UNI)               D        7   \n",
       "8            ***ЧАЙ С МУССОЛИНИ                     D        8   \n",
       "9       ***ШУГАРЛЭНДСКИЙ ЭКСПРЕСС (UNI)             D        9   \n",
       "10          *ЗА ГРАНЬЮ СМЕРТИ                       D       10   \n",
       "11          *ЛИНИЯ СМЕРТИ                           D       11   \n",
       "\n",
       "    item_category_id  \n",
       "0                 40  \n",
       "1                 76  \n",
       "2                 40  \n",
       "3                 40  \n",
       "4                 40  \n",
       "5                 40  \n",
       "6                 40  \n",
       "7                 40  \n",
       "8                 40  \n",
       "9                 40  \n",
       "10                40  \n",
       "11                40  "
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "items.head(12)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 商品种类对应的名字"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>item_category_name</th>\n",
       "      <th>item_category_id</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>PC - Гарнитуры/Наушники</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Аксессуары - PS2</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Аксессуары - PS3</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Аксессуары - PS4</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Аксессуары - PSP</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        item_category_name  item_category_id\n",
       "0  PC - Гарнитуры/Наушники                 0\n",
       "1         Аксессуары - PS2                 1\n",
       "2         Аксессуары - PS3                 2\n",
       "3         Аксессуары - PS4                 3\n",
       "4         Аксессуары - PSP                 4"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "item_categories.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "shops_num = list(set(st2['shop_id']))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 记录每个商店的总销售额"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "st2['item_cnt_day'].astype('float')\n",
    "st2['item_price'].astype('float')\n",
    "st_demo = st2[st2['shop_id']==shops_num[0]]\n",
    "all_price = 0.0\n",
    "dict_x = {}\n",
    "for i in range(st_demo.shape[0]):\n",
    "    good = st_demo.iloc[i]\n",
    "    all_price +=good['item_cnt_day']*good['item_price'] \n",
    "    if good['item_id'] not in dict_x:\n",
    "        dict_x[good['item_id']]=0\n",
    "    else:\n",
    "        dict_x[good['item_id']]+=1\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[11059,     4],\n",
       "       [11347,     1],\n",
       "       [11061,     0],\n",
       "       [11064,     0],\n",
       "       [11065,     8],\n",
       "       [11077,     1],\n",
       "       [11080,     0],\n",
       "       [11081,     0],\n",
       "       [11083,     0],\n",
       "       [11093,     0]], dtype=int64)"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "xx_ = np.c_[np.array([x for x in dict_x.keys()]),np.array([x for x in dict_x.values()])]\n",
    "xx_[:10,:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgEAAAGyCAYAAAB9UBcnAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzs3Xl4lPW9N/737ElmJslk3xcSQkgg\nkIAiIKAiVo9oUSsgQtXWWumxda14fk8fDrVU7PEHdWmxR0u1RRGwi1ppQVAkyG5YQghZCNn3ZZLM\nTDL7/fwRiCBblpm5Z3m/rqtXSeaeuT8TIXnnu30kgiAIICIiooAjFbsAIiIiEgdDABERUYBiCCAi\nIgpQDAFEREQBiiGAiIgoQDEEEBERBSiGACIiogDFEEDk5U6ePImf/exnAIDi4mKsXLnSI/f90Y9+\nhDNnzlzy+e3bt2PZsmXXfP6F17322mv46KOPrnr97373O+zateuyj134/HHjxqGrq+ua97/QhV+3\nC7+eRIFOLnYBRHR1EydOxOuvvw4AOHPmDFpbWz1y37fffttlr/Xkk09e85pDhw4hMzNzxM+/mgu/\nbhd+PYkCHUMAkZc7dOgQfvWrX+Htt9/G66+/DoPBgP/6r//CmjVr8MUXX+DNN9+EzWZDUFAQVqxY\ngfz8fLzxxhuoq6tDa2sr2tvbkZubi2nTpuGjjz5CQ0MDfv7zn2P+/PlXve8tt9yC1157DRMnTsRr\nr72Gf/7znwgPD0dqauoVn3Ol61544QWMHTsWP/zhD/H6669j586dUCgU0Ol0WLNmDXbu3ImSkhL8\nz//8D2QyGT7//HN0d3ejvr4eN910Ezo7OwefDwCvvvoqTp48CafTiaeeego333wz/v73v2PHjh34\n3//9XwAY/HjVqlUXfd0WLFiAX/3qV/j0009hMBjwy1/+EmVlZZBIJJg1axaeeeYZyOVyTJw4EY89\n9hj27duHtrY2PProo1iyZIkL/osSeQ+GACIfER8fj5/97GfYsWMH1qxZg5qaGvz2t7/FX/7yF+h0\nOlRWVuKRRx7BZ599BgAoKirCxx9/DIVCgdmzZyMqKgrvv/8+du3ahVdeeeWaIeC8Xbt24bPPPsNH\nH32EoKAg/Od//ueIr2tubsaf//xnHDhwAEqlEn/6059QXFyMBx98ENu3b8eDDz6IefPm4fPPP4fZ\n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\nAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1db00885da0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 设置sns的主题和代码颜色主题\n",
    "sns.set_style(\"white\")\n",
    "sns.set_color_codes(palette='deep')\n",
    "# 开始绘制\n",
    "f, ax = plt.subplots(figsize=(8, 7))\n",
    "#显示销售价格出现的频率\n",
    "sns.distplot(st_demo['item_id'], color=\"b\");\n",
    "# 不显示网格\n",
    "ax.xaxis.grid(False)\n",
    "# 设置坐标轴上的文字\n",
    "ax.set(ylabel=\"Frequency\")\n",
    "ax.set(xlabel=\"item_id\")\n",
    "ax.set(title=\"item_id distribution\")\n",
    "# 去除那些坐标轴显示线\n",
    "sns.despine(trim=True, left=True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "6637370.0"
      ]
     },
     "execution_count": 92,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "all_price"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "st_price = {}\n",
    "for j in shops_num:\n",
    "    st_demo = st2[st2['shop_id']==shops_num[j]]\n",
    "    all_price = 0.0\n",
    "    for i in range(st_demo.shape[0]):\n",
    "        good = st_demo.iloc[i]\n",
    "        all_price +=good['item_cnt_day']*good['item_price'] \n",
    "    st_price[j] = all_price\n",
    "import matplotlib as mpl\n",
    "mpl.rcParams['font.sans-serif']=['SimHei']\n",
    "mpl.rcParams['axes.unicode_minus'] = False"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1db10c69080>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "width = 0.6\n",
    "plt.bar(st_price.keys(), [i/1000 for i in st_price.values()], width, color='r')\n",
    "plt.ylabel(\"总销售额(k)\")\n",
    "plt.xlabel(\"商店编号\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "# 必须基于时间序列去做"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
